// 深浅拷贝的区别
/** 
 * 浅拷贝：会改变原对象 实现简单  消耗小 速度快
 * 深拷贝：不会改变原对象  实现复杂 消耗大占内存 速度慢
 */

//浅拷贝
Object.assign()
Array.slice()
Array.from()
concat()

//深拷贝
JSON.parse(JSON.stringify())
function deepClone(obj) {
    if (obj === null || typeof obj !== 'object') {
        return obj;
    }
    let clone = Array.isArray(obj) ? [] : {};
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            clone[key] = deepClone(obj[key]);
        }
    }
    return clone;
}

// [] == [] [] === []
[] == []; false  // [] 属于object  object是引用数据类型 引用的地址不同
[] === []; false // 同上 [1,2] === [1,2] 值相同 但不是同一个对象